
#ifndef IEQUATABLE_H
#define IEQUATABLE_H

// Riccsson includes.
#include "System/Object.h"

// using System.Runtime.InteropServices;

namespace Riccsson
{
	namespace System
	{
		// Summary:
		//     Defines a generalized method that a value type or class implements to create
		//     a type-specific method for determining equality of instances.
		//
		// Type parameters:
		//   Object:
		//     The type of objects to compare.
		interface IEquatable
		{
			// Summary:
			//     Indicates whether the current object is equal to another object of the same
			//     type.
			//
			// Parameters:
			//   other:
			//     An object to compare with this object.
			//
			// Returns:
			//     true if the current object is equal to the other parameter; otherwise, false.
			virtual bool Equals(const object* other) = 0;
		};
	}
}

#endif // IEQUATABLE_H